home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / comm / tcp / rxsocket.lha / rxsocket / examples / ioctl.rexx < prev    next >
OS/2 REXX Batch file  |  2000-11-28  |  2KB  |  79 lines

  1. /*
  2.     HOW TO USE IoctlSocket()
  3. */
  4.  
  5. l="rexxsupport.library";if ~show("L",l) then;if ~addlib(l,0,-30) then do;say "can't find" l;exit;end
  6. l="rmh.library";if ~show("L",l) then;if ~addlib(l,0,-30) then do;say "can't find" l;exit;end
  7. l="rxsocket.library";if ~show("L",l) then;if ~addlib(l,0,-30) then do;say "can't find" l;exit;end
  8.  
  9. parse arg dev
  10.  
  11. s=socket("INET","DGRAM")
  12. if s<0 then do
  13.     call err "socket"
  14.     exit
  15. end
  16.  
  17. /* SET the socket as async */
  18. res = IoctlSocket(s,"FIOASYNC",1)
  19. if res<0 then call error "FIOASYNC"
  20. else say "socket is FIOASYNC"
  21.  
  22. /* SET the socket as non blocking */
  23. res = IoctlSocket(s,"FIONBIO",1)
  24. if res<0 then call error "FIONBIO"
  25. else say "socket is FIONBIO"
  26.  
  27. /* CHECK if at OOB */
  28. res = IoctlSocket(s,"SIOCATMARK","A")
  29. if res<0 then call error "SIOCATMARK"
  30. else say "SIOCATMARK:" a
  31.  
  32. /* GET number of bytes ready to be read */
  33. res = IoctlSocket(s,"FIONREAD","A")
  34. if res<0 then call error "FIONREAD"
  35. else say "FIONREAD:" a
  36.  
  37.  
  38. /* GET vaious interface attributes*/
  39. res = IoctlSocket(s,"SIOCGIFADDR",dev,"A")
  40. if res<0 then call error "SIOCGIFADDR"
  41. else say "SIOCGIFADDR:" a
  42.  
  43. res = IoctlSocket(s,"SIOCGIFDSTADDR",dev,"A")
  44. if res<0 then call error "SIOCGIFDSTADDR"
  45. else say "SIOCGIFDSTADDR:" a
  46.  
  47. res = IoctlSocket(s,"SIOCGIFBRDADDR",dev,"A")
  48. if res<0 then call error "SIOCGIFBRDADDR"
  49. else say "SIOCGIFBRDADDR:" a
  50.  
  51. res = IoctlSocket(s,"SIOCGIFNETMASK",dev,"A")
  52. if res<0 then call error "SIOCGIFNETMASK"
  53. else say "SIOCGIFNETMASK:" a
  54.  
  55. res = IoctlSocket(s,"SIOCGIFFLAGS",dev,"A")
  56. if res<0 then call error "SIOCGIFFLAGS"
  57. else say "SIOCGIFFLAGS:" a
  58.  
  59. res = IoctlSocket(s,"SIOCGIFMETRIC",dev,"A")
  60. if res<0 then call error "SIOCGIFMETRIC"
  61. else say "SIOCGIFMETRIC:" a
  62.  
  63. res = IoctlSocket(s,"SIOCGIFMTU",dev,"A")
  64. if res<0 then call error "SIOCGIFMTU"
  65. else say "SIOCGIFMTU:" a
  66.  
  67. res = IoctlSocket(s,"SIOCGIFPHYS",dev,"A")
  68. if res<0 then call error "SIOCGIFPHYS"
  69. else say "SIOCGIFPHYS:" a
  70.  
  71. exit
  72.  
  73. error:
  74. parse arg attr
  75.     e=errno()
  76.     if IsLibOn("TTCP") then say "error on" attr":" e
  77.     else say "error on" attr":" errorstring(e)
  78.     return
  79.